【问题标题】:Word boundaries with dot sign in string字符串中带有点号的单词边界
【发布时间】:2012-11-01 20:34:16
【问题描述】:

我正在尝试匹配德语单词“Straße”的不同缩写(例如“Str”或“Str.”)

如何转义字符串中的点号?

\b(Str|Str.)\b

我如何设置不区分大小写?如果正则表达式也匹配“str”、“sTr”、...,那就太好了。

【问题讨论】:

  • 您使用的是哪种语言!..正则表达式 Q 必须用语言标记

标签: php regex


【解决方案1】:

您使用 \ 转义特殊字符。

\b(Str|Str\.)\b

另外,? 使前面的标记是可选的,所以我们可以浓缩为:

\b(Str\.?)\b

最后,使用i 修饰符指定不区分大小写。如何指定修饰符取决于语言。在大多数情况下,它们放在正则表达式的结束分隔符之后:

/\b(str\.?)\b/i

【讨论】:

  • @Slevin:你不能只是复制粘贴别人的代码。您需要了解自己在做什么,否则有一天您会遇到rm -rf /
  • 修复了我的 RE,他们最后缺少了 \b
  • @SilentGhost 我知道修饰符的用途,但它们不能一起使用。例如\b(Str\.?)\b 适用于我,但不适用于尾随 i。不幸的是,我知道rm -rf ...
  • 谢谢,我也想通了:)
【解决方案2】:

你可以在它前面加上一个反斜杠来转义它。您可以使用i 修饰符指定不区分大小写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多