社区首页 >问答首页 >在PowerShell中拆分字符串并选择子字符串

在PowerShell中拆分字符串并选择子字符串
EN

Stack Overflow用户
提问于 2018-03-28 17:36:41
回答 1查看 1.2K关注 0票数 0

我试图从较大的字符串中分离并返回一个小变量字符串。

我正在挣扎,因为我从其中提取的更大的字符串是列表格式。我可以成功地将其拆分为子字符串,但不知道如何在不返回整个字符串的情况下选择其中的一个子字符串。字符串由命令行进程生成。

代码语言:javascript
代码运行次数:0
复制
$StringList
AppTitle1.1.1221.aaa111
     AppSubTitle
AnotherAppTitle1.1.1221.aaa111
     AnotherAppSubTitle

...and等

我可以使用正则表达式在空格处拆分列表字符串为子字符串(在任何给定行中都没有空白)。

代码语言:javascript
代码运行次数:0
复制
$StringList -split "\s"

但是,一旦将字符串拆分成所需的子字符串,我就不知道如何选择所需的子字符串。列表的长度(即当前应用程序的数量)和在列表中检索标题所需的应用程序的位置都是完全可变的,所以我不能简单地使用子字符串引用号。我尝试过几种选择子字符串的方法,但每种方法都只是返回了整个字符串,或者根本没有返回。

以下是我尝试过的两种方法。第一个返回整个字符串列表,第二个则不返回任何内容。

代码语言:javascript
代码运行次数:0
复制
$DesiredAppTitle = Select-String -InputObject $StringList -Pattern "AnotherAppTitle"

代码语言:javascript
代码运行次数:0
复制
$DesiredAppTitle = foreach ($_.substring in $StringList)
{
     if ($_.substring -contains "AnotherAppTitle")
    {
         return $_.name
    }
}

我想要它回来的是:

代码语言:javascript
代码运行次数:0
复制
AnotherAppTitle1.1.1221.aaa111

我确信有无数种方法可以做到这一点,所以如果我的方法看起来都不太合适,我愿意接受其他建议。如能提供任何协助,将不胜感激。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 18:02:06

代码语言:javascript
代码运行次数:0
复制
# Multi-line input string.
$StringList = @'
AppTitle1.1.1221.aaa111
     AppSubTitle
AnotherAppTitle1.1.1221.aaa111
     AnotherAppSubTitle
'@

# Split it into whitespace-separated tokens.
$tokens = -split $StringList

# Match the token of interest.
$tokens -match '^AnotherAppTitle'

上述收益率:

代码语言:javascript
代码运行次数:0
复制
AnotherAppTitle1.1.1221.aaa111

注意使用regex匹配操作符和锚^来确保搜索项在令牌的开头匹配,并使用-split操作符的一元形式,它将输入除以任何非空空格。

至于,你尝试过

如果将多行字符串传递给Select-String,则将其视为单行“行”,如果匹配,则输出整条“行”。

foreach ($_.substring in $StringList)甚至不会运行,因为$_.substring不是一个有效的迭代变量(您不应该使用$_ (它是一个自动变量)作为枚举变量,.substring访问破坏了语法)。

如果您使用$_而不是$_.substring,那么循环在技术上可以工作(尽管$_不应该作为迭代变量使用),但是循环只对整个多行字符串执行一次。即使$_.substring确实引用了一行(它没有),-contains也是使用错误的操作符,因为它测试LHS集合是否完整地包含RHS值。

另外,使用break退出一个循环,而不是return

如上面演示的那样,使用-match方法是更好的方法,但是如果您想用foreach循环来解决这个问题:

代码语言:javascript
代码运行次数:0
复制
$DesiredAppTitle = foreach ($token in -split $StringList) {
  if ($token -match '^AnotherAppTitle') { $token; break }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49546698

复制
相关文章
Java在字符串中查找匹配的子字符串
示例: 在源字符串“You may be out of my sight, but never out of my mind.”中查找“my”的个数。输出:匹配个数为2
全栈程序员站长
2022/09/14
7.2K0
字符串中查找子串_cstring查找子字符串
假设要从主串 s = “goodgoogle” 中找到 t = “google” 子串。根据我们的思考逻辑,则有:
全栈程序员站长
2022/09/24
3K0
字符串中查找子串_cstring查找子字符串
java字符串的拆分_Java中的字符串分割 .
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:
全栈程序员站长
2022/08/26
3.7K0
字符串匹配:字符串中查找某子串
我们在平时的软件开发,尤其是嵌入式开发,字符串匹配是非常重要的一个算法。而目前常用的字符串匹配算法有很多,下面就来介绍几个。
跋扈洋
2022/03/29
1.4K0
【SQL】查找给定字符串中包含已知子字符串
CREATE Function [dbo].[ConvertSyntax](@paraStr nvarchar(2000))
鲁郭大侠
2020/03/05
2.2K0
删除字符串中的子串
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
叶茂林
2023/07/28
2590
删除字符串中的子串
sscanf函数-----字符串拆分函数
sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。 sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。
大忽悠爱学习
2021/03/02
3.3K0
sscanf函数-----字符串拆分函数
467. 环绕字符串中唯一的子字符串
假设有一个连续字符串 abcd,则他的非空子串的数量为 abc + 4,也等于 ab + 3 + 4。
程序员小航
2022/06/09
1.1K0
467. 环绕字符串中唯一的子字符串
LeetCode 2062. 统计字符串中的元音子字符串
元音子字符串 是 仅 由元音('a'、'e'、'i'、'o' 和 'u')组成的一个子字符串,且必须包含 全部五种 元音。
Michael阿明
2022/01/07
1.1K0
PowerShell:在 Windows 中创建并导出自签名证书
证书是一种包含公钥和一些识别信息的文件。在PKI中,证书是由可信任的第三方(称为证书颁发机构,CA)颁发的,CA证明了证书持有者的身份以及与之关联的公钥。然而,我们也可以创建自签名证书,即由证书持有者自己(而不是CA)签名的证书。
运维开发王义杰
2023/08/10
2.4K0
PowerShell:在 Windows 中创建并导出自签名证书
如何在 Bash 中抽取子字符串
本文介绍了如何在 Bash 中抽取子字符串,包括使用 IFS、cut 命令和编译自 Vivek Gite 的子字符串扩展方法。
企鹅号小编
2017/12/29
1.6K0
如何在 Bash 中抽取子字符串
python 如何使用split拆分字符串
将字符串拆分成一个列表,其中每个单词都是一个列表中的元素:txt = "welcome to the jungle"
用户8418197
2022/02/17
5K0
Python判断字符串是否包含子字符串
Python如何判断一个字符串是否包含指定字符串?本文介绍Python判断一个字符串是否包含指定子串的4种方法。具有一定的借鉴价值。
全栈程序员站长
2022/09/06
2K0
Python判断字符串是否包含子字符串
字符串——459. 重复的子字符串
示例 1: 输入: s = “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。
向着百万年薪努力的小赵
2022/12/02
1.4K0
讲究!字符串拆分还能这么玩
“哥,我感觉字符串拆分没什么可讲的呀,直接上 String 类的 split() 方法不就可以了!”三妹毫不客气地说。
沉默王二
2021/07/16
1K0
java——split的用法(字符串拆分)
从这里可以看到,本代码是用空格拆分字符串,但是最开始的字符串不会因为字符串的分割而改变(String定义的字符串不会被修改)
小雨的分享社区
2022/10/26
2K0
java——split的用法(字符串拆分)
R语言字符串处理①R语言字符串合并与拆分
R基础字符串处理函数 nchar paste strsplit tolower toupper casefold chartr gsub sub substr substring grep grepl regexpr R包stringr 字符串处理学习思路 拼接 对应拼接,如 (‘a’,’b’)+(‘c’,’d’) → (‘ac’,’bd’) 多拼为一,如 (‘a’,’cd’,’m’) → (‘acdm’) 拆分(根据pattern) 如’a.b.c.d’ → (‘a’,’b’,’
用户1359560
2018/08/27
6.5K0
R语言字符串处理①R语言字符串合并与拆分
MySQL字符串的合并及拆分
按照指定字符进行合并或拆分是经常碰到的场景,MySQL在合并的写法上比较简单,但是按指定字符拆分相对比较麻烦一点(也就是要多写一些字符)。本文将举例演示如何进行按照指定字符合并及拆分。
俊才
2020/07/01
6.4K0
mysql行转列(拆分字符串场景)
一对多没有建立中间表的时候经常会采用分隔符的形式将“多”存储在“一”的一个字段里,这样做的代价是无法像一对多的时候那样直接关联查询,一般采用在程序中分割后分别查询的办法。如下图:
全栈程序员站长
2022/09/03
2.5K0
mysql行转列(拆分字符串场景)
LeetCode刷题实战467:环绕字符串中唯一的子字符串
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/12/15
5600

相似问题

PowerShell拆分选择字符串

113

在PowerShell中拆分字符串

23

拆分字符串并选取大写子字符串

30

Powershell -拆分字符串

31

Mysql拆分字符串并选择结果

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档