我有一个名字的字符串,看起来像
"6302_I-PAL_SPSY_000237_001"
我需要删除第一个发生的下划线,以便它将作为
gsub
我知道QNetworkConfiguration nc;
QNetworkConfigurationManager ncm;
QList<QNetworkConfiguration> configsForEth,configsForWLAN,allConfigs;
// getting all the configs we can
foreach (nc,ncm.allConfigurations(QNetworkConfiguration::Active))
{
if(nc.type() == QNetworkConfiguration::InternetAccessPoint)
{
// selecting the bearer type here
if(nc.bearerType() == QNetworkConfiguration::BearerWLAN)
{
configsForWLAN.append(nc);
}
if(nc.bearerType() == QNetworkConfiguration::BearerEthernet)
{
configsForEth.append(nc);
}
}
}
// further in the code WLAN's and Eth's were treated differently
allConfigs.append(configsForWLAN);
allConfigs.append(configsForEth);
QString MAC;
foreach(nc,allConfigs)
{
QNetworkSession networkSession(nc);
QNetworkInterface netInterface = networkSession.interface();
// these last two conditions are for omiting the virtual machines' MAC
// works pretty good since no one changes their adapter name
if(!(netInterface.flags() & QNetworkInterface::IsLoopBack)
&& !netInterface.humanReadableName().toLower().contains("vmware")
&& !netInterface.humanReadableName().toLower().contains("virtual"))
{
MAC = QString(netInterface.hardwareAddress());
break;
}
}
但它删除了所有下划线。感谢您的任何建议。
答案 0 :(得分:3)
我们可以将sub
与模式_
一起使用,替换为空白(""
)。这将删除第一次出现的&#39; _&#39;。
sub("_", "", str1)
#[1] "6302_I-PAL_SPSY_000237_001"
注意:这将删除first
_
出现的start
,并且不会根据位置(即字符串的str2 <- "6302_I-PAL_SPSY_000237_001"
sub("_", "", str2)
#[1] "6302I-PAL_SPSY_000237_001"
)进行限制。
例如,假设我们有字符串
_
由于示例在开头有substring
,另一个选项是substring(str1, 2)
#[1] "6302_I-PAL_SPSY_000237_001"
str1 <- "_6302_I-PAL_SPSY_000237_001"
1) make use of third party libraray
2) pass the pdf url to google docs and open it in webview
3) by passing intent open it into pdf application like pdfViewer etc
答案 1 :(得分:3)
gsub函数执行相同操作,删除字符串符号^ used
的开头 x <- "_6302_I-PAL_SPSY_000237_001"
x <- gsub("^\\_","",x)
[1] "6302_I-PAL_SPSY_000237_001"
答案 2 :(得分:0)
这也可以用基 R 的 trimws()
来完成
string1<-"_6302_I-PAL_SPSY_000237_001"
trimws(string1, which='left', whitespace = '_')
[1] "6302_I-PAL_SPSY_000237_001"
如果我们有多个带有前导下划线的单词,我们可能必须在正则表达式中包含一个单词边界 (\\b
),并使用 gsub 或 stringr::string_remove
:
string2<-paste(string1, string1)
string2
[1] "_6302_I-PAL_SPSY_000237_001 _6302_I-PAL_SPSY_000237_001"
library(stringr)
str_remove_all(string2, "\\b_")
> str_remove_all(string2, "\\b_")
[1] "6302_I-PAL_SPSY_000237_001 6302_I-PAL_SPSY_000237_001"