我的使用情况如下:我想找到类似这样的东西/name.action
所有出现,但其中最后一部分是不.action
如:正则表达式不匹配特定字符串
- name.actoin - 应该匹配
- name.action - 不应该匹配
- nameaction - 不应与
我有这样的:
/\w+.\w*
匹配由点分隔的两个单词,但我不知道如何添加'和不匹配.action'。
我的使用情况如下:我想找到类似这样的东西/name.action
所有出现,但其中最后一部分是不.action
如:正则表达式不匹配特定字符串
我有这样的:
/\w+.\w*
匹配由点分隔的两个单词,但我不知道如何添加'和不匹配.action'。
首先,你需要为是采取在正则表达式any character
逃避你的性格.
。其次,您需要添加一个Match if suffix is not present
群组 - 以(?!)
语法表示。
你也可以把一个回旋^
来表示一个新行的开始,改变你的*
(任何重复)到+
(一个或多个repititions)。
^/\w+\.(?!action)\w+
是完成的正则表达式。
您需要转义点字符。
这只是问题的一个(小)的一部分。 –
^\w+\.(?!action)\w*
\w+\.(?!action).*
注意尾随.*
不知道您要在操作文本后执行什么操作。
见你需要使用zero-width negative lookahead assertion。这会让你在字符串中向前看,并且基于一个单词的否定匹配。
所以正则表达式你需要(包括转义字符。)看起来是这样的:
/name\.(?!action)/
在大多数正则表达式实现中,'.'不匹配'\ r'和'\ n'。 –
\ w是否仅适用于ASCII取决于所使用的编程语言,有时也适用于正则表达式编译标志 - 例如,在某些情况下,您需要一个'/ u'或'(?u)',而在其他情况下(例如Java )甚至不足以获得包括Unicode字母。 – tchrist