- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在调查 Xregexp支持以字母开头的命名参数的表达式。这是我的表达:
(?:d:|duration:)(?<time>.*\S+).*(?:t:|title:)(?<title>(?:.*\S+))(?:.*(?:(?:p:|prize:)(?<prize>.*\S+)))
它运行良好,但问题是我想把 p:<prize>
组作为可选,我应该使用哪个表达式?
我还尝试在出现空白时结束捕获
示例:
我想要什么:
duration:1h 5m 1s title:Title test [p:prize]<-optionnal group
我想要prize
组作为可选
与当前表达式匹配:
duration:1h 5m 1s title:Title test p:Something random
小组结果:
time
:1h 5m 1s
title
:Title test
prize
:Something random
最佳答案
您需要稍微限制您的模式才能摆脱 .*
这将耗尽后续子模式最后一次出现的所有内容。然后,每当您需要将值匹配到下一个键时,请使用惰性点模式( .*?
),并添加 $
。 (字符串结尾) anchor 位于末尾,以确保您将获得带有惰性点的所有文本。
d(?:uration)?:(?<time>.*?)\s*t(?:itle)?:(?<title>.*?)\s*(?:p(?:rize)?:(?<prize>.*))?$
请参阅regex pattern .
详细信息
d(?:uration)?:
- 一个d:
或duration:
(?<time>.*?)
- 组“时间”:任何零个或多个字符,尽可能少,直到后续子模式的最左边出现\s*
- 0+ 空格t(?:itle)?:
- 要么 title:
或t:
(?<title>.*?)
- 组“标题”:任何零个或多个字符,尽可能少\s*
- 0+ 空格(?:
- 可选非捕获组的开始匹配 1 或 0 次出现:
p(?:rize)?:
-p:
或prize:
(?<prize>.*)
- 组“奖品”:任何零个或多个字符,尽可能少)?
- 可选组的结尾$
- 字符串结尾。关于javascript - Xregexp javascript 可选命名组,以空格分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917937/
我搜索了 XRegExp 的 web site ,以及 GitHub readme 。那里唯一的示例加载 xregexp-all.js,这正是我不想做的,因为它加载了所有插件。在SO上搜索,我发现了这
我想为所有包括非斜体字符的电子邮件地址编写正则表达式。 我试过了,但它返回错误 请尽快提供正确的解决方案 var em = XRegExp('^([\\p{L}+|\\p{N}*][@]
我需要在 JavaScript 中使用正则表达式的 lookbehind,所以找到了 Simulating lookbehind in JavaScript (take 2) .另外,我发现作者 St
我想用规则验证字符串: 字符串必须至少包含一个字母 字符串只能包含那些符号(但不是必须的):' , - , ( , ) 如果字符串中存在一个符号,它还必须包含一个字母(至少一个第一个项目符号) 不允许
我的目标是替换所有不是破折号 (-) 或不是数字或不是字符串中任何语言的字母的字符。所有 #!()[] 以及所有其他符号都将替换为空字符串.所有出现的 - 也不应被替换。我为此使用了 XRegExp插
如果您使用 XRegExp 的 'x' 标志,则不清楚如何将文字 '#' 添加到搜索中。 The documentation似乎没有产生任何照明。 例如: > XRegExp("the # hey",
我想实现一种方法来获取一个开放跨度标签和它的关闭标签之间的所有内容。问题是有时我可以嵌套跨度,我想确保我的正则表达式不会停止它看到的第一个结束跨度。 要查看我的问题,请查看:Regex101 : ne
我下载了RequireJS单页应用sample 。在www/lib文件夹中,我放置了XRegExp源xregexp-all.js (版本2.0.0)。 在 www/app/main.js 中,我添加了
我想将 XRegExp 函数转换为纯 JavaScript RegExp。基本上所有非字母数字字符都将被替换为“_”,包括空格。 正文 这是示例文本 *\&^%$#@!~' 会像 这_is_a_sam
我的伪 CoffeeScript 代码: xre = require('xregexp').XRegExp bodyRe = xre( '\\*\\s(?.*)', 'img') xre.forE
我正在使用 XRegExp 来检查 unicode 正则表达式。除了 IE11 之外,它在我测试过的任何浏览器中都可以正常工作。 在我的脚本中,我定义了要检查的正则表达式: var unicodeWo
我觉得这将是一个愚蠢的问题,但我完全感到困惑。 我正在使用 Javascript 的 XRegExp 库生成一个正则表达式,该正则表达式匹配任何字母表中的任何单词,但不匹配带有数字、标点符号或特殊字符
所以我一直在尝试实现 p{L}我的 Angular 项目中的模式没有任何成功。我已经尝试过这个 npm package 并按如下方式设置我的变量(以多种方式): nameRegex = new Reg
我正在调查 Xregexp支持以字母开头的命名参数的表达式。这是我的表达: (?:d:|duration:)(?.*\S+).*(?:t:|title:)(?(?:.*\S+))(?:.*(?:(?:
这个问题在这里已经有了答案: What special characters must be escaped in regular expressions? (13 个答案) 关闭 4 年前。 我写
我正在尝试让这个名称验证正则表达式正常工作,但遇到了问题。我已经确保我有 regexp 的 unicode 插件,但它似乎不起作用。此正则表达式可与 php pcre 正则表达式配合使用。 XRegE
以下代码在我的两台不同计算机(Windows 7,Chrome 12.0.742.100)上的两个 chrome 中都会失败。 Test
我很难找出 XRegExp 中的正则表达式来接受 JavaScript 中的这些类型的要求: 接受所有 UTF-8 字符 单词之间允许有空格,但只能有 1 个空格,不能有多个空格。 允许所有符号,例如
我正在尝试检查给定的 UTF-8 字符串是否仅由字母组成。 我尝试了在这里找到的解决方案:Validating user's UTF-8 name in Javascript 给定字符串:Ciesio
我是一名优秀的程序员,十分优秀!