问题标签 [regex-alternation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 如何正则表达式字符串
是否可以使用正则表达式进行检查:
- 完整的字符串是数字和
- 第一个字符是 7 或 8,那么字符串的完整长度必须是 11或
- 第一个字符是 1 那么字符串的完整长度必须是 10
- 或者第一个字符是 0,那么字符串的完整长度必须是 18 并且字符 8 必须是 8 或 7 或者字符 9 必须是 1
我希望你能明白我的意思。希望这些例子能帮助你明白我的意思。
这是我的解决方案(不完全工作->我不知道如何检查它是否以 0 开头并且长度为 18 个字符,位置 8 上的字符必须是 7 或 8 或位置 9 上的字符必须是 1) :
例如:
- 8 5556987456 -> 以 8 开头,长度为 11 -> 匹配
- 7 5556987456 -> 以 7 开头,长度为 11 -> 匹配
- 1 555698745 -> 以 1 开头,长度为 10 -> 匹配
- 0 000000 8 5556987456 -> 以 0 开头,长度为 18,在 pos 8 上是 8 -> 匹配
- 0 000000 7 5556987456 -> 以 0 开头,长度为 18,在 pos 8 上为 7 -> 匹配
- 0 0000000 1 556987456 -> 以 0 开头,长度为 18,在 pos 9 上是 1 -> 匹配
谢谢!
regex - Go中的正则表达式不匹配
我有一个在 Go 中不匹配的正则表达式。
但是在正则表达式游乐场中,它匹配得很好:https ://regex101.com/r/VNDXcQ/2 。
它匹配 JS 注释。
这是代码:
为什么会这样?
regex - Raku 正则表达式:如何知道哪个组被交替捕获
使用 perl(以及几乎任何正则表达式风格),每个组都按顺序编号。
例如,这段代码:
印刷xbar
但是,对于 Raku,它的行为就像有一个分支重置组包装了整个正则表达式:
印刷barx
我对这种行为没意见:)。但是,有时了解在交替下捕获了哪个组是有用的。
我怎样才能知道有 raku 的组?
regex - Raku 正则表达式:不一致的最长令牌匹配
Raku 的正则表达式应该匹配最长的标记。
事实上,在这段代码中可以看到这种行为:
但是,当文本在变量中时,它的工作方式似乎不同:
为什么它们以不同的方式工作?有没有办法使用变量并且仍然匹配最长的标记?
regex - 如何指示 Scala 的正则表达式匹配器选择最左边的交替
尝试从中检索值时遇到了正则表达式替换问题scala.util.matching.Regex
。我在使用该方法时尝试了默认状态和unanchored
初始化状态。findAllMatchIn
使用(1e)|(a1)
带有示例文本的 regex 模式a1e
,我希望收到1e
,因为我已将其放置在第一个交替位置。我很困惑为什么我实际上收到的是第二个a1
交替位置的值。
在查看了处理跨输入字符串的多个匹配项的许多问题之后,除了将它们按正确的顺序放置之外,我还没有找到任何解决如何处理交替的问题,我已经这样做了。
如果有的话,我可以使用什么方法来取回我想要的值1e
,或者返回两个值,一个用于匹配的每个交替?
下面是我的 IntelliJ Scala 工作表中的代码示例(这里是 Scastie 中的代码):
regex - 我想要对使用 IP 地址和子网的字符的正则表达式支持
我有一个 ^[a-zA-Z0-9.*?]+$
支持 IP 地址的正则表达式,例如31.202.216.280
如何修改给定的正则表达式,使我可以支持具有这样 IP 地址的子网31.202.216.280/38