Regex 正则表达式点(.)问题
如果您有一个字符串,如:Regex 正则表达式点(.)问题,regex,Regex,如果您有一个字符串,如: "hello my name is joe bloggs! I like stuff" “你好,我的名字是乔·布洛格斯”?我从以下几点开始: (.+)(!)(.+) 在点,我希望它停止 您能用功能回答吗 谢谢您需要一个问号: (.+?)(!)(.+) 你需要一个问号: (.+?)(!)(.+) 可能会有一点不同,“通常”不会“捕获”新行,而[^!]会,但除非文本中有新行,否则不会看到任何差异 可能会有一点不同,那就是“通常”不会“捕获”新行,而[^!]会,但除非
"hello my name is joe bloggs! I like stuff"
“你好,我的名字是乔·布洛格斯”?我从以下几点开始:
(.+)(!)(.+)
在点代码>,我希望它停止
您能用
功能回答吗
谢谢您需要一个问号:
(.+?)(!)(.+)
你需要一个问号:
(.+?)(!)(.+)
可能会有一点不同,
“通常”不会“捕获”新行,而[^!]
会,但除非文本中有新行,否则不会看到任何差异
可能会有一点不同,那就是
“通常”不会“捕获”新行,而[^!]
会,但除非文本中有新行,否则您不会看到任何差异。没有问题;您只有三个捕获组:第一个(.+)
,(!)
,第二个(.+)
。如果您只想匹配以结尾的行代码>,请考虑
(.+)!
但是如果你想清楚地识别线路的每一部分
^(.+)!.+$
同样,问题不在于
,但是如果您想要一次捕获,您应该只有一个被括号括起来的组。没有问题;您只有三个捕获组:第一个(.+)
,(!)
,第二个(.+)
。如果您只想匹配以结尾的行代码>,请考虑
(.+)!
但是如果你想清楚地识别线路的每一部分
^(.+)!.+$
同样,问题不在于
,但是如果您想要一个捕获,您应该只有一个用括号括起来的组。用什么语言?你能发布你的代码吗?(.+(?=\!)
是一个开始,但太短了,无法回答:PIn什么语言?你能发布你的代码吗?(.+(?=\!)
是一个开始,但对于答案来说太短了:p这个方法有效,因为问号使+
不贪婪,所以第一个(.+)
在回溯之前不会尝试匹配整个字符串。对于问题中的特定示例,问号实际上是不必要的,因为只有一个问号-但非greedy+
将更有效。这是因为问号使+
不贪婪,因此第一个(.+)
在回溯之前不尝试匹配整个字符串。对于问题中的特定示例,问号实际上是不必要的,因为只有一个问号-但是非reedy+
将更有效。