我想删除变量的最后一个字符。我想知道是否可以选择位置gsub并删除该特定位置的字符。
在这个例子中,我想删除最后一个数字,在 , 之后E,为我的 4 个变量。
variables = c('B10243E1', 'B10243E2', 'B10243E3', 'B10243E4')
gsub(pattern = '[[:xdigit:]]{8}.', replacement = '', x = variables)
Run Code Online (Sandbox Code Playgroud)
我以为我们可以使用命令
{}
Run Code Online (Sandbox Code Playgroud)
为了选择一个特定的位置。
我有几个要从中提取子字符串的字符串。这是一个例子:
/skukke/integration/build/IO/something
Run Code Online (Sandbox Code Playgroud)
我想提取第三个/字符之后的所有内容。在这种情况下,输出应为
/build/IO/something
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情
/\/\s*([^\\]*)\s*$/
Run Code Online (Sandbox Code Playgroud)
比赛的结果是
something
Run Code Online (Sandbox Code Playgroud)
这不是我想要的。有人可以帮忙吗?
我正在尝试进行正则表达式匹配,这完全抛弃了前瞻性.
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Run Code Online (Sandbox Code Playgroud)
这是匹配,这是我的regex101测试.
但是,当一封电子邮件,开始-或者_或.不应该完全匹配它,而不是仅仅删除初始符号.欢迎任何想法,我一直在寻找过去半小时,但无法弄清楚如何从这些符号开始时删除整个电子邮件.
我有一个小的 javascript 函数:
function GetFilteredListLimited(event) {
var $source = $(event.target);
var $Pattern = event.data.Pattern;
var RE = new RegExp($Pattern, 'i');
if (RE.test($source.val())) {
console.log('RegEx match');
}
};
Run Code Online (Sandbox Code Playgroud)
使用的模式是:
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
Run Code Online (Sandbox Code Playgroud)
这应该与大多数电子邮件地址匹配。
使用http://regexpal.com/我可以看到该模式是正确的。但由于某种奇怪的原因,脚本已经匹配@之后的第四个字符
abc@abcd 不应给出匹配项,但确实如此。有什么建议 ?
我有以下 PHP 代码:
\n\n$search = "foo bar que";\n$search_string = str_replace(" ", "|", $search);\n\n$text = "This is my foo text with qu\xc3\xa9 and other accented characters.";\n$text = preg_replace("/$search_string/i", "<b>$0</b>", $text);\n\necho $text;\nRun Code Online (Sandbox Code Playgroud)\n\n显然,“que”与“qu\xc3\xa9”不匹配。我怎样才能改变这一点?有没有办法让preg_replace忽略所有口音?
必须匹配的字符(西班牙语):
\n\n\xc3\xa1,\xc3\x81,\xc3\xa9,\xc3\x89,\xc3\xad,\xc3\x8d,\xc3\xb3,\xc3\x93,\xc3\xba,\xc3\x9a,\xc3\xb1,\xc3\x91\nRun Code Online (Sandbox Code Playgroud)\n\n我不想在应用正则表达式之前替换所有重音字符,因为文本中的字符应该保持不变:
\n\n“这是我的foo文本,带有qu\xc3\xa9和其他重音字符。”
\n\n并不是
\n\n“这是我的foo文本,带有que和其他重音字符。”
\nMDN为JavaScript RegExp引入了'y'粘性标志.这是一个文档摘录:
ÿ
黏; 仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不会尝试与任何后续索引匹配).
还有一个例子:
var text = 'First line\nSecond line';
var regex = /(\S+) line\n?/y;
var match = regex.exec(text);
console.log(match[1]); // prints 'First'
console.log(regex.lastIndex); // prints '11'
var match2 = regex.exec(text);
console.log(match2[1]); // prints 'Second'
console.log(regex.lastIndex); // prints '22'
var match3 = regex.exec(text);
console.log(match3 === null); // prints 'true'
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,g全局标志的使用实际上没有任何区别:
var text = 'First line\nSecond line';
var regex = /(\S+) line\n?/g;
var match = regex.exec(text);
console.log(match[1]); // prints 'First'
console.log(regex.lastIndex); // prints '11'
var …Run Code Online (Sandbox Code Playgroud) 我试图使用php中的preg_replace函数完全匹配字符串.我只想匹配具有单个"@"符号的实例.我还需要一个变量作为模式传入.
$x = "@hello, @@hello, @hello, @@hello"
$temp = '@hello'
$x = preg_replace("/".$temp."/", "replaced", $x);
Run Code Online (Sandbox Code Playgroud)
结果应该是:
$x = "replaced, @@hello, replaced, @@hello"
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我得到它\p{L}包括Unicode符号的所有字母,\p{Alpha}略有相同,但仅适用于拉丁字母(ASCII).在我的工作中,我有'A'拉丁语和'A'西里尔语,并且\p{Alpha}在旧的Java代码中不会将西里尔符号与字母匹配.当我测试它时,\p{L}对我来说是解决方案.你能不能给我一些关于这种情况的建议以及我在java代码中使用的内容?在这个页面上http://www.regular-expressions.info/posixbrackets.html使用\p{Alpha}的Java代码.
我有一个字符串列表,需要使用它们从它们构建正则表达式Regexp#union.我需要生成的模式不区分大小写.
该#union方法本身不接受选项/修饰符,因此我目前看到两个选项:
strings = %w|one two three|
Regexp.new(Regexp.union(strings).to_s, true)
Run Code Online (Sandbox Code Playgroud)
和/或:
Regexp.union(*strings.map { |s| /#{s}/i })
Run Code Online (Sandbox Code Playgroud)
两种变体看起来都有些奇怪.
是否有能力使用Regexp.union?构造不区分大小写的正则表达式?
我有一个正则表达式,我试图将一个变量传递给:
int i = 0;
Match match = Regex.Match(strFile, "(^.{i})|(godness\\w+)(?<=\\2(\\d+).*?\\2)(\\d+)");
Run Code Online (Sandbox Code Playgroud)
我希望正则表达式引擎解析{i}为i变量保存的数字。
我这样做的方式不起作用,因为当文本包含匹配的子字符串时,我没有得到匹配项。