我有一串中文文字:
xxxxx.xxxx.xxx.xxx.xxxxx.xxxCxxxx。
如何使用正则表达式解析包含字母“C”的句子?
xxxCxxxx。
正则表达式:
/。.+?C.+?。/
给出了这个结果:
"。xxxx。xxx。xxx。xxxxx。xxxCxxxx。"
更新
找到答案:[^。]*C[^。]*
任何人都可以解释为什么/[^。]*C[^。]*。/
有效且/。.+?C.+?。/
没有?
答案 0 :(得分:1)
解决方案是:[^。]*C[^。]*。
要回答原始正则表达式/。.+?C.+?。/
的问题,您希望解释它为什么不能正常工作:
。
.+?C
将继续提取字符,直到找到C为止
整件事情将匹配:xxxx。xxx。xxx。xxxxx。xxx
找到C后,正则表达式.+?。
的最后一部分将会出现
行动。它将所有内容提取到下一个。
因此,您会得到结果:。xxxx。xxx。xxx。xxxxx。xxxCxxxx。
这一个[^。]*C[^。]*。
适用于您,因为:
[^。]*C
取出任何东西。那些必须遵循的东西
由C使其成为xxxC
[^。]*。
它再次取出任何东西,并在找到时停止。
并匹配它。