rule-based deletions from string listHow to extract a consecutive list of substring from a string?How can I find English words among the names of the characters in the Mathematica character set?Removing non-word characters from a stringCounting the number of instances of one sub-string within a given string within a lower- and upper-bound gap of a second sub-stringStrange answer from StringReplaceRule-based string manipulationPulling sections from a webpageDeleteCases not working as expectedResolution of string lists to smaller components IIHow to generate letters for multiple people from a list of names
What do solvers like Gurobi and CPLEX do when they run into hard instances of MIP
SMTP banner mismatch with multiple MX records
Find all files in directories named foo
Why do we need to use transistors when building an OR gate?
How often is duct tape used during crewed space missions?
As a discovery writer, how to complete unfinished novel (which is highly diverted from original plot ) after a time-gap
Microservices and Stored Procedures
Tips for remembering the order of parameters for ln?
rule-based deletions from string list
Is it safe to unplug a blinking USB drive after 'safely' ejecting it?
What's the purpose of autocorrelation?
Can Brexit be undone in an emergency?
Why can't we use uninitialized local variable to access static content of its type?
Is there an in-universe reason Harry says this or is this simply a Rowling mistake?
How is underwater propagation of sound possible?
Manager manipulates my leaves, what's in it for him?
Do household ovens ventilate heat to the outdoors?
What did the controller say during my approach to land (audio clip)?
What is the maximum viable speed for a projectile within earth's atmosphere?
Are lay articles good enough to be the main source of information for PhD research?
Debussy as term for bathroom?
How should errors be reported in scientific libraries?
What are sources for Magic Items that are not adventure-specific?
What is the rail connection between Paris Charles de Gaulle Airport and Gare de Lyon like?
rule-based deletions from string list
How to extract a consecutive list of substring from a string?How can I find English words among the names of the characters in the Mathematica character set?Removing non-word characters from a stringCounting the number of instances of one sub-string within a given string within a lower- and upper-bound gap of a second sub-stringStrange answer from StringReplaceRule-based string manipulationPulling sections from a webpageDeleteCases not working as expectedResolution of string lists to smaller components IIHow to generate letters for multiple people from a list of names
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I have a list of strings:
lis = "a","b","c","12","d","q","r","X","s"
I'd like to delete list members starting with "X" moving backwards through the list from "X" until a list member that's a digit character is found, to get:
res = "a","b","c","12","s"
Not sure how to use DeleteCases here?
string-manipulation
$endgroup$
add a comment
|
$begingroup$
I have a list of strings:
lis = "a","b","c","12","d","q","r","X","s"
I'd like to delete list members starting with "X" moving backwards through the list from "X" until a list member that's a digit character is found, to get:
res = "a","b","c","12","s"
Not sure how to use DeleteCases here?
string-manipulation
$endgroup$
add a comment
|
$begingroup$
I have a list of strings:
lis = "a","b","c","12","d","q","r","X","s"
I'd like to delete list members starting with "X" moving backwards through the list from "X" until a list member that's a digit character is found, to get:
res = "a","b","c","12","s"
Not sure how to use DeleteCases here?
string-manipulation
$endgroup$
I have a list of strings:
lis = "a","b","c","12","d","q","r","X","s"
I'd like to delete list members starting with "X" moving backwards through the list from "X" until a list member that's a digit character is found, to get:
res = "a","b","c","12","s"
Not sure how to use DeleteCases here?
string-manipulation
string-manipulation
asked 8 hours ago
Suite401Suite401
1,2284 silver badges12 bronze badges
1,2284 silver badges12 bronze badges
add a comment
|
add a comment
|
3 Answers
3
active
oldest
votes
$begingroup$
You would need something like DeleteSubsequenceCases
, but it doesn't exist. I would recommend this instead:
SequenceReplace[lis, d_?(StringMatchQ[NumberString]), ___, "X" :> d]
If X
only appears once, you could also use this:
First@SequenceCases[lis, a___, d_?(StringMatchQ[NumberString]), ___, "X", b___ :> a, "12", b]
$endgroup$
add a comment
|
$begingroup$
Replace[lis, a___, b_String?(StringMatchQ[NumberString]), Shortest[c___], "X", d___ :>
a, b, d]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
$begingroup$
rlis = Reverse[lis];
xpos = First[Flatten[Position[StringMatchQ[rlis, "X"], True]]];
Reverse[Drop[rlis, xpos, xpos + LengthWhile[rlis[[xpos + 1 ;;]],
StringMatchQ[#, NumberString] == False &]]]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f206390%2frule-based-deletions-from-string-list%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
You would need something like DeleteSubsequenceCases
, but it doesn't exist. I would recommend this instead:
SequenceReplace[lis, d_?(StringMatchQ[NumberString]), ___, "X" :> d]
If X
only appears once, you could also use this:
First@SequenceCases[lis, a___, d_?(StringMatchQ[NumberString]), ___, "X", b___ :> a, "12", b]
$endgroup$
add a comment
|
$begingroup$
You would need something like DeleteSubsequenceCases
, but it doesn't exist. I would recommend this instead:
SequenceReplace[lis, d_?(StringMatchQ[NumberString]), ___, "X" :> d]
If X
only appears once, you could also use this:
First@SequenceCases[lis, a___, d_?(StringMatchQ[NumberString]), ___, "X", b___ :> a, "12", b]
$endgroup$
add a comment
|
$begingroup$
You would need something like DeleteSubsequenceCases
, but it doesn't exist. I would recommend this instead:
SequenceReplace[lis, d_?(StringMatchQ[NumberString]), ___, "X" :> d]
If X
only appears once, you could also use this:
First@SequenceCases[lis, a___, d_?(StringMatchQ[NumberString]), ___, "X", b___ :> a, "12", b]
$endgroup$
You would need something like DeleteSubsequenceCases
, but it doesn't exist. I would recommend this instead:
SequenceReplace[lis, d_?(StringMatchQ[NumberString]), ___, "X" :> d]
If X
only appears once, you could also use this:
First@SequenceCases[lis, a___, d_?(StringMatchQ[NumberString]), ___, "X", b___ :> a, "12", b]
answered 7 hours ago
C. E.C. E.
55.4k3 gold badges108 silver badges220 bronze badges
55.4k3 gold badges108 silver badges220 bronze badges
add a comment
|
add a comment
|
$begingroup$
Replace[lis, a___, b_String?(StringMatchQ[NumberString]), Shortest[c___], "X", d___ :>
a, b, d]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
$begingroup$
Replace[lis, a___, b_String?(StringMatchQ[NumberString]), Shortest[c___], "X", d___ :>
a, b, d]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
$begingroup$
Replace[lis, a___, b_String?(StringMatchQ[NumberString]), Shortest[c___], "X", d___ :>
a, b, d]
"a", "b", "c", "12", "s"
$endgroup$
Replace[lis, a___, b_String?(StringMatchQ[NumberString]), Shortest[c___], "X", d___ :>
a, b, d]
"a", "b", "c", "12", "s"
answered 7 hours ago
kglrkglr
217k10 gold badges247 silver badges497 bronze badges
217k10 gold badges247 silver badges497 bronze badges
add a comment
|
add a comment
|
$begingroup$
rlis = Reverse[lis];
xpos = First[Flatten[Position[StringMatchQ[rlis, "X"], True]]];
Reverse[Drop[rlis, xpos, xpos + LengthWhile[rlis[[xpos + 1 ;;]],
StringMatchQ[#, NumberString] == False &]]]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
$begingroup$
rlis = Reverse[lis];
xpos = First[Flatten[Position[StringMatchQ[rlis, "X"], True]]];
Reverse[Drop[rlis, xpos, xpos + LengthWhile[rlis[[xpos + 1 ;;]],
StringMatchQ[#, NumberString] == False &]]]
"a", "b", "c", "12", "s"
$endgroup$
add a comment
|
$begingroup$
rlis = Reverse[lis];
xpos = First[Flatten[Position[StringMatchQ[rlis, "X"], True]]];
Reverse[Drop[rlis, xpos, xpos + LengthWhile[rlis[[xpos + 1 ;;]],
StringMatchQ[#, NumberString] == False &]]]
"a", "b", "c", "12", "s"
$endgroup$
rlis = Reverse[lis];
xpos = First[Flatten[Position[StringMatchQ[rlis, "X"], True]]];
Reverse[Drop[rlis, xpos, xpos + LengthWhile[rlis[[xpos + 1 ;;]],
StringMatchQ[#, NumberString] == False &]]]
"a", "b", "c", "12", "s"
answered 1 hour ago
MelaGoMelaGo
2,7911 gold badge2 silver badges8 bronze badges
2,7911 gold badge2 silver badges8 bronze badges
add a comment
|
add a comment
|
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f206390%2frule-based-deletions-from-string-list%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown