驗證多行文本,以便所有行都包含具有嚴格的管道分隔格式的文本

誠實

假設我們有一個輸入,它可能由一行或多行文本組成,並且所有行都必須遵守嚴格的格式。

number|any character(s)|number

前任。:

150|example.com/|2500
600|hello_world|1500

中間的字符可以包含任何字符,不包括空格。開頭和結尾的數字可以由一個或多個數字組成。

我想檢查文本中的所有行是否都符合所需的格式。

到目前為止,我想出了以下正則表達式,但true即使只有一行與上面的格式匹配,它也會返回

/[0-9]+\|.*?\|[0-9]/im

如何調整我的模式以驗證整個文本並true返回preg_match()

維克多·斯特里比尤夫

您可以使用

/\A([0-9]+\|\S*\|[0-9]+)(?:\R(?1))*\z/

請參閱正則表達式演示詳情

  • \A - 字符串的開始
  • ([0-9]+\|\S*\|[0-9]+)- 第 1 組:一位或多位數字、|任何零個或多個非空白字符,盡可能多|,以及一位或多位數字
  • (?:\R(?1))* - 零次或多次重複換行,然後是第 1 組模式
  • \z - 字符串的結尾。

請參閱PHP 演示

$text = "150|google.com/|2500\n600|hello_world|1500";
if (preg_match('~\A([0-9]+\|\S*\|[0-9]+)(?:\R(?1))*\z~', $text)){
    echo "Valid!";
}
// => Valid!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

匹配具有特定格式的多行文本

我如何order_by查询,以便所有具有等于true的列的行都首先开始?

将多行文本解析为具有逗号分隔符的单行

html + CSS-当单元格具有多行文本时拆分列

如何使用 Ocelot 在 .Net Core API 網關中實現 Windows 身份驗證,以便所有下游服務都可以訪問 IWindowsPrincipal?

PostgreSQL如何将结果分组以便所有行都必须为真?

拆分具有多行文本和单行文本的行

REST嚴格驗證與否?

如何將 3 個文本排成一行,以便所有內容都可見

带有多行文本的JavaFX Button

如何删除多行文本文件中大括号之间的所有文本?

如何删除多行文本文件中嵌套大括号之间的所有文本?

将所有文本的多行文本视图对齐到所有屏幕的中心和相似的左对齐

如何正确设置导航栏的格式,以便所有类别并排显示?

删除多行文本区域中特定字符之后的所有行字符

awk - 舍入多行文本文件中的所有浮点数

获取具有固定宽度的多行文本的高度,以使对话框正确调整大小

具有验证和字符替换的多行文本小部件

PHP:如何使用所有现有键初始化2D数组中的单元格,以便所有行具有相同数量的元素

如何包装具有预配置宽度的多行文本框(Web控件)中的输出文本?

从单个单元格中提取分隔符之间的多行文本

熊猫:获取最少数量的记录,以便所有列至少具有一个非null值

带有 VFL 约束的 iOS 多行文本

如何从Excel复制多行文本而没有引号?

如何使用 matplotlib 格式化方程,以便所有字符(子和上標除外)的大小相同?

解析包含多个条目且没有分隔符的严格格式文本

如何创建分区,以便所有用户都可以在没有任何权限的情况下读取执行文件?

从文本中删除所有格式

复制具有格式的Notepad ++文本?