Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择just";";从「;“3月11日”;使用正则表达式_Php_Regex_Sublimetext2 - Fatal编程技术网

Php 选择just";";从「;“3月11日”;使用正则表达式

Php 选择just";";从「;“3月11日”;使用正则表达式,php,regex,sublimetext2,Php,Regex,Sublimetext2,如何使用正则表达式将以下数据中的th、nd、st替换为空格之类的内容 我的随机文本在这里带有th。。。。。“3月11日”…我的随机文本中有th。 我的随机文本在这里有nd。。。。。“3月2日”…我的随机文本中有nd。 我的随机文本中有st。。。。。“3月1日”…我的随机文本中有st 到目前为止,我尝试了这个[0-9]0-9,但它也替换了这个数字。如何保留数字或仅选择所需的部分?(?考虑以下正则表达式 (?<=\"\d+)[a-zA-Z]+ (?正如Johnsyweb所建议的,replac

如何使用正则表达式将以下数据中的th、nd、st替换为空格之类的内容

我的随机文本在这里带有th。。。。。“3月11日”…我的随机文本中有th。 我的随机文本在这里有nd。。。。。“3月2日”…我的随机文本中有nd。 我的随机文本中有st。。。。。“3月1日”…我的随机文本中有st


到目前为止,我尝试了这个[0-9]0-9,但它也替换了这个数字。如何保留数字或仅选择所需的部分?

(?考虑以下正则表达式

(?<=\"\d+)[a-zA-Z]+

(?正如Johnsyweb所建议的,replace命令的确切语法将取决于您使用的语言。
jaco0646有一个很好的正则表达式来匹配您想要的,并且关键地捕获它。(第二组括号可以做到这一点(以及对备选项进行分组)。顺便说一下,第一组括号是非捕获的,这要感谢
作为括号中的第一个字符。)
无论如何,捕获了所需的文本后,您将在替换表达式中将该捕获组称为
\1
。这是反斜杠。
如果您的正则表达式中有多个捕获组,则可以使用
\2
引用第二个捕获组,依此类推。

如果您有嵌套的捕获组,那么您可以按其左括号的顺序对它们进行计数。例如,在
((foo)bar)
中,
\1
将是“foobar”,而
\2
将只是“foo”。

您可以捕获数字字符并匹配以下
th
nd
st

对于括号中模式的第一个匹配,通常回指为
$1
\1

请尝试以下操作:

Find: ([0-9]+)[a-zA-Z]{2}
Replace: $1 

请参见php中的,下面的代码片段用于在数字后立即查找和替换
st
nd
,并将其替换为
**
。您可以看到可以在何处插入“任意字符串”进行替换

向@jaco0646致敬

<?php
$inputString = 'This is the 2nd of November<br>';
$pattern = '/(?<=[0-9])(st|nd|rd|th)/';
$replacement = '**';

$newString = preg_replace($pattern, $replacement, $inputString);
echo $inputString;
echo $newString;
?>


我使用的是sublime text 2。回答有点简洁,但正确。你能展示一下“替换”部分是如何工作的吗?@Floris我现在使用的是sublime text 2的搜索和替换功能。如果我想在PHP中做同样的事情,我会怎么做?感谢PHP版本。我在回应你的评论时添加了这个“如果我能在PHP中做同样的事情……”我认为@jaco0464的答案在细节上有点过于轻率。